Bir şubeyi hem yerel hem de uzaktan silmek istiyorum. Uzak Şubeyi Silme Denemeleri Başarısız $ git şube -d uzaktan kumandalar / kaynak / hata düzeltme hata: şube 'uzaktan / kaynak / hata düzeltme' bulunamadı. $ git şube -d kaynak / hata düzeltme hata: 'kaynak / hata düzeltme' dalı bulunamadı. $ git şube -rd kaynağı / hata düzeltme Uzak dal kaynağı / hata düzeltme silindi (2a14ef7 idi). $ git itme Her şey güncel $ git çekme Github.com'dan :gituser/gitproject * [yeni şube] hata düzeltme -> kaynak / hata düzeltme Zaten güncel. Uzak / kaynak / hata düzeltme dalını hem yerel hem de uzaktan başarıyla silmek için ne yapmalıyım?
2020-12-07 13:13:50
1 2 Sonraki Yönetici Özeti $ git push -d<şube_adı> $ git şube -d <şube_adı> Çoğu durumda uzak adın orijin olduğunu unutmayın. Böyle bir durumda komutu bu şekilde kullanmanız gerekecektir. $ git push -d kaynak <şube_adı> Yerel Şubeyi Sil Yerel şubeyi silmek için aşağıdakilerden birini kullanın: $ git şube -d şube_adı $ git şube -D şube_adı Not: -d seçeneği, --delete için bir takma addır ve yalnızca yukarı akış dalında zaten tam olarak birleştirildiyse dalı siler. Ayrıca --delete --force için bir takma ad olan ve dalı "birleştirilmiş durumuna bakılmaksızın" silen -D'yi de kullanabilirsiniz. [Kaynak: adam git-şube] Ayrıca git branch -d branch_name şu anda eğer başarısız olursanız kaldırmak istediğiniz dalda. Mesaj şununla başlar: hata: 'şube_adı' dalı silinemiyor. Eğer öyleyse, önce değiştirin başka bir şubeye, örneğin: git checkout master. Uzak Şubeyi Silme [8 Eylül 2017'de güncellendi] Git v1.7.0'dan itibaren, bir uzak dalı silebilirsiniz. $ git push --delete hangisini hatırlaması daha kolay olabilir $ git push : <şube_adı> "uzak bir dalı veya etiketi silmek için" Git v1.5.0'da eklenmiştir. Git v2.8.0'dan başlayarak, git push'u --delete için bir takma ad olarak -d seçeneğiyle birlikte de kullanabilirsiniz. Bu nedenle, kurduğunuz Git sürümü, daha kolay mı yoksa daha zor sözdizimini mi kullanmanız gerektiğini belirleyecektir. Uzak Şubeyi Silme [5 Ocak 2010 Tarihinden Gelen Asıl Cevap] Scott Chacon tarafından yazılan Pro Git'in 3. Bölümünden: Uzak Şubeleri Silme Uzak bir şubeyle işinizin bittiğini varsayalım - diyelim ki, siz ve ortak çalışanlarınızın bir özelliği tamamladınız ve onu uzaktan kumandanızın ana dalına (veya kararlı kod satırınız hangi dalda olursa olsun) birleştirdiniz. Oldukça geniş sözdizimi git push [remotename]: [branch] kullanarak uzak bir dalı silebilirsiniz. Sunucu düzeltme dalınızı sunucudan silmek isterseniz, aşağıdakileri çalıştırırsınız: $ git itme kaynağı: serverfix Git@github.com adresine: schacon / simplegit.git - [silindi] serverfix Boom. Sunucunuzda artık dal yok. Bu komutu takip etmek isteyebilirsiniz çünkü bu komuta ihtiyacınız olacak ve muhtemelen sözdizimini unutacaksınız. Bu komutu hatırlamanın bir yolu, biraz önce üzerinden geçtiğimiz git push [remotename] [localbranch]: [remotebranch] sözdizimini hatırlamaktır. [Localbranch] kısmını devre dışı bırakırsanız, "Benim tarafımdan hiçbir şey almayın ve [remotebranch] olmasını sağlayın" diyorsunuz. Git push origin: bugfix yayınladım ve çok güzel çalıştı. Scott Chacon haklıydı — O sayfayı (veya Stack Overflow'da buna cevap vererek sanal olarak kulak tırmalamak istiyorum). O zaman bunu diğer makinelerde yapmalısınız # Tüm uzaktan kumandalardan değişiklikleri getir ve yerel olarak sil # uzaktan silinen dallar / etiketler vb. # --prune şu işi yapacak: -; git fetch --all --prune değişiklikleri yaymak için. | Matthew'un cevabı uzaktaki dalları kaldırmak için harikadır ve açıklamayı da takdir ediyorum, ancak iki komut arasında basit bir ayrım yapmak için: Makinenizden yerel bir şubeyi kaldırmak için: git branch -d {the_local_branch} (birleştirilmiş durumu kontrol etmeden şubeyi silmeye zorlamak yerine -D kullanın) Uzak bir dalı sunucudan kaldırmak için: git push kaynağı --delete {the_remote_branch} Referans: Git: Bir dalı silin (yerel veya uzak) | Kısa cevaplar Aşağıdaki komutların daha ayrıntılı açıklamalarını istiyorsanız, bir sonraki bölümdeki uzun yanıtlara bakın. Uzak bir dalı silme git push kaynağı --delete # Git sürüm 1.7.0 veya daha yenisi git push origin -d # Daha kısa sürüm (Git 1.7.0 veya daha yeni) git push kaynağı: # 1.7.0'dan eski Git sürümleri Yerel bir şubeyi silme git şube --delete git branch -d # Daha kısa versiyon git branch -D # Birleştirilmemiş dalları silmeye zorla Yerel bir uzaktan izleme şubesini silme git branch --delete --remotes / git branch -dr / # Daha kısa git fetch --prune # Eski birden çok uzaktan izleme dalını sil git fetch -p # Daha kısa Uzun cevap: Silinecek üç farklı dal var! Hem yerel hem de uzaktan şubeleri silmeyle uğraşırken, ilgili üç farklı dal olduğunu unutmayın: Yerel şube X. Uzak kökenli şube X. Uzak şube X'i izleyen yerel uzaktan izleme şube kaynağı / X. Kullanılan orijinal poster: git şube -rd kaynağı / hata düzeltme Bu, yalnızca yerel uzaktan izleme şube kaynağını / hata düzeltmesini silmiş ve köken üzerindeki asıl uzak şube hata düzeltmesini silmemiştir. Bu gerçek uzak dalı silmek için, git push kaynağı --delete bugfix Ek detaylar Aşağıdaki bölümler, uzaktan ve uzaktan izleme şubelerinizi silerken göz önünde bulundurmanız gereken ek ayrıntıları açıklamaktadır. Uzak şubeleri silmeye zorlamak, uzaktan izleme şubelerini de kaldırır Uzak dalı X komut satırından silmeningit push kullanmak yerel uzaktan izleme dalı orijinini / X'i de kaldırır, bu nedenle eski uzaktan izleme dalını git fetch --prune veya git fetch -p ile budamak gerekmez. Ancak, yine de yaparsan zarar vermez. Aşağıdakileri çalıştırarak uzaktan izleme dalı kaynağının / X'in de silindiğini doğrulayabilirsiniz: # Yalnızca uzaktan izleme şubelerini görüntüleyin git şube - uzaktan kumandalar git şube -r # Hem tam olarak yerel hem de uzaktan izleme şubelerini görüntüleyin git şube - hepsi git şube -a Kullanılmayan yerel uzaktan izleme dalı orijini / X'i budama Uzak şube X'inizi komut satırından (yukarıdaki gibi) silmediyseniz, yerel deponuz yine de (artık kullanılmayan) uzaktan izleme şube orijini / X'i içerecektir. Örneğin, uzak bir şubeyi doğrudan GitHub'ın web arayüzü üzerinden sildiyseniz bu durum meydana gelebilir. Bu eski uzaktan izleme dallarını kaldırmanın tipik bir yolu (Git sürüm 1.6.6'dan beri), git getirme işlemini --prune veya daha kısa -p ile çalıştırmaktır. Bu işlemin, artık uzaktaki dallar için artık kullanılmayan tüm yerel uzaktan izleme dallarını kaldırdığını unutmayın: git getirme kaynağı --prune git başlangıç -p # Daha kısa getir İşte 1.6.6 sürüm notlarından ilgili alıntı (vurgu benim): "git getir" - hepsi ve - çok seçenekli, getirmeyi çalıştırmak için öğrenildi birçok depo ve uzaktan izlemeyi kaldırmak için --prune seçeneği bayatlamış dallar. Bunlar, "git uzaktan güncelleme" ve "git uzaktan budama "daha az gerekli (kaldırma planı yok" uzaktan kumanda güncelleme "ne de" uzaktan budama "olsa da). Eski uzaktan izleme dalları için yukarıdaki otomatik budamaya alternatif Alternatif olarak, eskimiş yerel uzaktan izleme dallarınızı git fetch -p aracılığıyla budamak yerine, fazladan ağ işlemi yapmaktan, dalları --remote veya -r bayraklarıyla manuel olarak kaldırabilirsiniz: git şube - silme - menşei / X git branch -dr kaynak / X # Daha kısa Ayrıca bakınız git-branch (1) Kılavuz Sayfası. git-fetch (1) Kılavuz Sayfası. Pro Git § 3.5 Git Dallanma - Uzak Dallar. | Bir dalı silmek için adımlar: Uzak dalı silmek için: git itme kaynağı --delete Yerel şubeyi silmek için üç yolunuz vardır: 1: git dalı -D 2: git branch --delete --force <şube_adı> # -D ile aynı 3: git branch --delete <şube_adı> # Birleştirmeyi kaldırırken hata oluştu Açıklayın: Tamam, burada neler olduğunu açıklayın! Sadece uzak şubenizi silmek için git push origin --delete yapın, sonuna dalın adını ekleyin ve bu aynı anda onu siler ve uzak konuma itecektir ... Ayrıca, git dalı -D, yalnızca yerel şubeyi siler! ... -D, --delete --force anlamına gelir ve bu, birleştirilmemiş olsa bile şubeyi siler (silmeye zorla), ancak dal birleştirme durumuna ilişkin bir hata veren --delete anlamına gelen -d'yi de kullanabilirsiniz. Adımları göstermek için aşağıdaki resmi de oluşturuyorum: | Uzak dalı silmek için aşağıdakileri de kullanabilirsiniz git push - kaynak sunucusunu sil Aynı şeyi yapan git push kaynağı: serverfix ama hatırlaması daha kolay olabilir. | İpucu: kullanarak dalları sildiğinizde git branch -d # Yerel şubeyi siler veya git push kaynağı: # Uzak dalı siler sadece referanslar silinir. Şube uzaktan kumandadan kaldırılmış olsa da, ona yapılan referanslar ekip üyelerinizin yerel depolarında hala mevcuttur. Bu, diğer takım üyeleri için silinen dalların git dalı -a yaptıklarında hala görünür olduğu anlamına gelir. Bunu çözmek için ekip üyeleriniz silinen dalları budayarak git remote prune Bu genellikle git uzak erik kökenlidir. | Bir şubeyi silmek isterseniz, öncelikle silinecek şube dışındaki şubeye ödeme yapın. git checkout other_than_branch_to_be_deleted Yerel şubeyi silme: git şube -D branch_to_be_deleted Uzak dalı silme: git push kaynağı --delete branch_to_be_deleted | git şube -D git şube -D -r kökeni / <şube-adı> git push kaynağı: | Bu basit: Sadece aşağıdaki komutu çalıştırın: Bir Git dalını hem yerel hem de uzaktan silmek için önce şu komutu kullanarak yerel dalı silin: git şube -d örneği (Örnek, şube adıdır.) Ve bundan sonra, şu komutu kullanarak uzak dalı silin: git push kaynağı: örnek | Çok basit: Uzak dalı silmek için git push -d kaynak Veya git push kaynağı: Yerel şubeyi zorla silmek için git şube -D | Başka bir yaklaşım şudur: git push -prune kaynağı UYARI: Bu, yerel olarak mevcut olmayan tüm uzak dalları siler. Veya daha kapsamlı olarak, git push -mirror uzak deponun etkin bir şekilde deponun yerel kopyası gibi görünmesini sağlar (yerel kafalar, uzaktan kumandalar ve etiketler uzaktan yansıtılır). | Bash ayarlarımda aşağıdakileri kullanıyorum: takma ad git-shoot = "git itmeköken - silme " O zaman arayabilirsin: git-shoot şube adı | Yerel olarak silin: Yerel bir şubeyi silmek için şunları kullanabilirsiniz: git şube -d <şube_adı> Bir dalı zorla silmek için -d yerine -D kullanın. git şube -D <şube_adı> Uzaktan silin: İki seçenek vardır: git push kaynağı: şube adı git push kaynağı - şube adını sil Daha sezgisel olduğu için ikinci yolu kullanmanızı öneririm. | Ocak 2013'ten beri GitHub, "Şubeler" sayfanızdaki her şubenin yanına bir Dal sil düğmesi eklemiştir. İlgili blog yayını: Dallar oluşturun ve silin | Bu iki adımı da tek bir komutla tamamlamak istiyorsanız, aşağıdakileri ~ / .gitconfig dosyanıza ekleyerek onun için bir takma ad oluşturabilirsiniz: [takma ad] rmbranch = "! f () {git branch -d $ {1} && git itme kaynağı --delete $ {1};}; f" Alternatif olarak, bunu komut satırından genel yapılandırmanıza ekleyebilirsiniz. git config --global alias.rmbranch \ '! f () {git branch -d $ {1} && git itme kaynağı --delete $ {1}; }; f ' NOT: -d (küçük d) kullanılıyorsa, dal yalnızca birleştirilmişse silinir. Silmeyi zorlamak için -D (büyük D) kullanmanız gerekir. | Şubenizi yerel ve uzaktan silmek için Ana şubeye ödeme - git ödeme yöneticisi Uzak şubenizi silin - git push kaynağı --delete Yerel şubenizi silin - git şube --delete <şube adı> | Bunu git remote prune origin kullanarak da yapabilirsiniz. $ git uzak budama kaynağı Budama kökeni URL: git@example.com/yourrepo.git * [budanmış] kökeni / bazı dallar Uzaktan izleme dallarını bir git dalı -r listesinden ayıklar ve siler. | Diğer cevaplara ek olarak, git_remote_branch aracını sıklıkla kullanıyorum. Ekstra bir kurulumdur, ancak size uzak şubelerle etkileşim kurmanın uygun bir yolunu sunar. Bu durumda silmek için: grb şube sil Yayınla ve izle komutlarını da oldukça sık kullandığımı görüyorum. | Hem yerel hem de uzak noktayı silmek için tek satırlık bir komut: D = şube adı; git dalı -D $ D; git itme kaynağı: $ D Veya aşağıdaki takma adı ~ / .gitconfig dosyanıza ekleyin. Kullanım: git kill branch-name [takma ad] kill = "! f () {git şube -D \" $ 1 \ "; git itme kaynağı - silme \" $ 1 \ ";}; f" | Şubeleri Silme Şube "iletişim formu" üzerindeki çalışmamızın tamamlandığını ve onu zaten "usta" ile entegre ettiğimizi varsayalım. Artık ihtiyacımız olmadığı için onu silebiliriz (yerel olarak): $ git şube -d iletişim formu Ve uzak dalı silmek için: git push kaynağı - iletişim formunu sil | Uzak şubeyi sil git push kaynağı: Yerel şubeyi sil git şube -D Yerel şube adımlarını silin: başka bir şubeye ödeme yerel şubeyi sil | Basitçe şunu söyleyin: git şube -d git push kaynağı: | git push kaynağı --delete <şube adı> hatırlaması daha kolay git itme kaynağı: branchName | Şimdi bunu GitHub Desktop uygulamasıyla yapabilirsiniz. Uygulamayı başlattıktan sonra Şubeyi içeren projeye tıklayın Silmek istediğiniz şubeye geçin Dalın GitHub sunucularından silinmesi için "Dal" menüsünden "Yayından Kaldır ..." öğesini seçin. Şubenin yerel makinenizden silinmesi için "Şube" menüsünden, "Şube_adı" nı Sil ... 'seçeneğini seçin (AKA şu anda üzerinde çalıştığınız makine) | Yerel olarak silmek için - (normal) git şube -d dalım Şubeniz bir yeniden ödeme / birleştirme sürecindeyse ve bu doğru şekilde yapılmadıysa, bir hata alacağınız anlamına gelir, Yeniden Başlat / Birleştir devam ediyor, bu durumda şubenizi silemeyeceksiniz. Yani ya yeniden desteklemeyi / birleştirmeyi çözmeniz gerekiyor. Aksi takdirde, kullanarak silmeye zorlayabilirsiniz. git şube -D dalım Uzaktan silmek için: git push - kökeni sil my_branch Aynı şeyi kullanarak da yapabilirsiniz: git push origin: my_branch # Hatırlaması kolay her ikisi de aynı şeyi yapacaktır. Grafik gösterimi: | Uzaktan kumandadaki şubeyle aynı ada sahip bir etiketiniz varsa bu işe yaramaz: $ git itme kaynağı: dal-veya-etiket-adı hata: dst refspec dal-veya-etiket-adı birden fazla eşleşiyor. hata: bazı referansları 'git@github.com: SomeName / some-repo.git' adresine gönderemedi Bu durumda etiketi değil dalı silmek istediğinizi belirtmeniz gerekir: git push kaynağı: refs / Heads / branch-or-tag-name Benzer şekilde, kullanacağınız dal yerine etiketi silmek için: git push kaynağı: refs / etiketler / dal-veya-etiket-adı | Diğer cevapların çoğu hatalara / uyarılara yol açacaktır. Bu yaklaşım nispeten aptalca bir kanıttır, ancak örneğin, bir_diger_branch ile tam olarak birleştirilmemişse, git branch -D branch_to_delete'e ihtiyacınız olabilir. git checkout some_other_branch git itme kaynağı: branch_to_delete git şube -d branch_to_delete Uzak dalı sildiyseniz, uzaktan budama gerekmez. Yalnızca izlediğiniz bir bilgi havuzunda bulunan en güncel uzaktan kumandaları almak için kullanılır. Git getirmenin uzaktan kumanda ekleyeceğini, kaldırmayacağını gözlemledim. Git remote prune origin'in gerçekte ne zaman bir şeyler yapacağına dair bir örnek: Kullanıcı Ayukarıdaki adımları gerçekleştirir. B Kullanıcısı, en güncel uzak dalları görmek için aşağıdaki komutları çalıştırır: git getir git uzaktan erik kaynağı git şube -r | Bu cevap için googling yapmaktan sıkıldım, bu yüzden crizCraig'in daha önce gönderdiği cevaba benzer bir yaklaşım izledim. Bash profilime aşağıdakileri ekledim: function gitdelete () { git push kaynağı - 1 $ 'ı sil git şubesi -D $ 1 } Daha sonra bir dal ile işim her bittiğinde (örneğin, ana ile birleştirildiğinde) terminalimde aşağıdakileri çalıştırırım: gitdelete my-branch-name ... bu da benim-şube-ismimi hem yerel hem de orijinden siler. | Yürütmeden önce git şube --delete ilk olarak uzak dalın tam adının ne olduğunu belirlediğinizden emin olun: git ls-remote Bu size değeri için tam olarak ne girmeniz gerektiğini söyleyecektir. (dal, büyük / küçük harfe duyarlıdır!) | Kullanım: git push kaynağı: bugfix # Uzak dalı siler git branch -d bugfix # Yerel şubeyi manuel olarak silmeli Silmek istediğinizden eminseniz, çalıştırın git dalı -D hata düzeltmesi Şimdi silinen uzak dalları temizlemek için çalıştırın git uzaktan erik kaynağı | 1 2 Sonraki Oldukça aktif soru. Bu soruyu cevaplamak için 10 itibar kazanın. İtibar koşulu, bu sorunun istenmeyen postalardan ve yanıtlanmayan etkinliklerden korunmasına yardımcı olur. Aradığın cevap değil mi? Git version-control git-branch git-push git-remote etiketli diğer sorulara göz atın veya kendi sorunuzu sorun.